package cjlu.ea.h.common;

import cjlu.ea.h.entity.ByszgshbLsb;
import cn.hutool.core.collection.CollUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 * //TODO
 *
 * @author hcx
 * @since 2023/3/15 10:57
 **/
@Component
public class ByzgCheck {

    public List<ByszgshbLsb> getInsertOrUpdateList(ByszgshbLsb bysQuery) {
        ByszgshbLsb bys = new ByszgshbLsb();
        BeanUtils.copyProperties(bysQuery,bys);
        //去空格
        //系统审核判断毕业资格
        if ("".equals(bys.getJd()) || "".equals(bys.getXwjd())) {
            System.out.println("绩点不能为空");
            return null;
        }

        //1.无毕业资格和学位资格，无法毕业
        if ((Double.parseDouble(bys.getJd()) < 2.0 || Double.parseDouble(bys.getXwjd()) < 2.0)
                && (!"".equals(bys.getKwxx().trim()) || !"".equals(bys.getXkxx().trim())
                || !"".equals(bys.getZyxx().trim()) || !"".equals(bys.getGgxx().trim())
                || !"".equals(bys.getTsxx().trim()) || !"".equals(bys.getBjg().trim()))) {//绩点有小于2.0的，并且有不及格课程

            bys.setByzg("无");
            bys.setXwzg("无");

            if (!"结业".equals(bys.getBz()) || !"延长".equals(bys.getBz())) {
                bys.setBz("结业");
            }
        }
        //无毕业资格，可能有学位资格，无法毕业
        if ((Double.parseDouble(bys.getJd()) < 2.0 || Double.parseDouble(bys.getXwjd()) < 2.0)
                || (!"".equals(bys.getKwxx().trim()) || !"".equals(bys.getXkxx().trim())
                || !"".equals(bys.getZyxx().trim()) || !"".equals(bys.getGgxx().trim())
                || !"".equals(bys.getTsxx().trim()) || !"".equals(bys.getBjg().trim()))) {

            bys.setByzg("无");

            if (!"结业".equals(bys.getBz()) || !"延长".equals(bys.getBz())) {
                bys.setBz("结业");
            }
        }

        //可以毕业，可能有违纪
        if ((Double.parseDouble(bys.getJd()) > 2.0 && Double.parseDouble(bys.getXwjd()) > 2.0)
                && ("".equals(bys.getKwxx().trim()) && "".equals(bys.getXkxx().trim())
                && "".equals(bys.getZyxx().trim()) && "".equals(bys.getGgxx().trim())
                && "".equals(bys.getTsxx().trim()) && "".equals(bys.getBjg().trim()))) {//绩点都大于2.0，无不及格课程
            bys.setByzg("有");
            if (!"".equals(bys.getWj())) {
                bys.setXwzg("无");
            } else {
                bys.setXwzg("有");
                if ("结业".equals(bys.getBz()) || "延长".equals(bys.getBz())) {
                    bys.setBz("毕业");
                }
            }

        }
        //无学位资格，可能有毕业资格，可能毕业
        if (!"".equals(bys.getWj())) {
            bys.setXwzg("无");
        }

        //最后判断有无毕业状态
        if ("无".equals(bys.getByzg())) {
            bys.setXwzg("无");
            if (!"结业".equals(bys.getBz()) || !"延长".equals(bys.getBz())) {
                bys.setBz("结业");
            }
        }
        bys.setGmtCreate(new Date());
        bys.setGmtModified(new Date());
        List<ByszgshbLsb> listBys= CollUtil.newArrayList();
        listBys.add(bys);
        //批量注册进数据库
        return listBys;
    }

}
